// sgu410
// 题意：
// 给定n(<=100000)个星球，已知每个星球有某种物质的数量，现在你有n艘飞船，
// 你可以用这些飞船每次集体行动，某个飞船到某个星球搬运一单位某物质回来，
// 飞船必需到不同的星球，并且必需所有星球都至少有1个单位物质，否则没法进行
// 搬运。现在有某种技术手段，可以将某个星球的物质数量翻倍。
// 飞船的一次集体出动或者使用技术手段都算一次操作。现在要输出最少操作次数，
// 将所有星球的物质都搬运完。
// 如果次数小于等于1000，输出具体方案。
//
// 题解：
// 首先发现，由于每次每个星球最多减1, 并且由于这个规则限制，肯定是要
// 所有数都相同才能全部搬空，所以减少次数肯定就是最大数量那个星球的次数。
// 对于其他星球要增加，其实增加次数也可以算出来，因为要尽量少，所以基数
// 要尽量大，所以一开始就不断翻倍，假如说一开始就翻倍到目标，那么次数直接
// 可以得道，否则就是这个次数再加1, 因为之后不断减少到某次肯定可以翻倍。
// 算出总次数之后，如果小于等于1000, 直接模拟即可。
//
// ml:run = $bin < input
#include <iostream>
#include <algorithm>
#include <cmath>

using ll = long long;
int const maxn = 100007;
ll a[maxn];
int n;

bool check()
{
    for (int i = 1; i <= n; i++)
        if (a[i]) return false;
    return true;
}

int main()
{
    std::ios_base::sync_with_stdio(false);
    std::cin >> n;
    ll max = 0;
    for (int i = 1; i <= n; i++) {
        std::cin >> a[i];
        max = std::max(max, a[i]);
    }
    ll ans = max;
    for (int i = 1; i <= n; i++)
        ans += std::ceil(std::log((long double)max / (long double)a[i]) / std::log(2) - 1e-7);
    std::cout << ans << "\n";
    if (ans > 1000) return 0;
    while (!check()) {
        for (int i = 1; i <= n; i++)
            while (a[i] * 2 <= max) {
                std::cout << "science mission to the planet " << i << "\n";
                a[i] *= 2;
            }
        for (int i = 1; i <= n; i++)
            a[i]--;
        max--;
        std::cout << "flying mission\n";
    }
}

